package vista;

import com.toedter.calendar.JDateChooser;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Date;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;

import javax.swing.WindowConstants;
import javax.swing.border.BevelBorder;
import javax.swing.border.LineBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.SwingUtilities;

/**
 * This code was edited or generated using CloudGarden's Jigloo SWT/Swing GUI
 * Builder, which is free for non-commercial use. If Jigloo is being used
 * commercially (ie, by a corporation, company or business for any purpose
 * whatever) then you should purchase a license for each developer using Jigloo.
 * Please visit www.cloudgarden.com for details. Use of Jigloo implies
 * acceptance of these licensing terms. A COMMERCIAL LICENSE HAS NOT BEEN
 * PURCHASED FOR THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED LEGALLY FOR
 * ANY CORPORATE OR COMMERCIAL PURPOSE.
 */
public class VentanaPedido extends javax.swing.JFrame {
	private JPanel pnlBorde;
	private JTextField txtNroPedido;
	private JPanel pnlproductopedido;
	private JTextField txtCantidadPedida;
	private JButton bntAgregarP;
	private JDateChooser stchFecha;
	private JTable tblProductoP;
	private JScrollPane scpProductosp;
	private JLabel lblLineaPedido;
	private JComboBox cmbLineaPedido;
	private JLabel lblImagen;
	private JButton btnGuardar;
	private JButton btnAceptar;
	private JPanel pnlClientepedido;
	private JTextField txtNombreCliP;
	private JLabel lblNombreCliP;
	private JTextField txtIdclientePedido;
	private JTable jTable1;
	private JScrollPane jpnSegundoScrollPanel;
	private JLabel lblIdCliente;
	private JTextField txtDireccionPedido;
	private JLabel lblDireccionPedido;
	private JLabel lblTitulo;
	private JLabel lblFechaPedido;
	private JTable tblPedido;
	private JScrollPane scpPedido;
	private JPanel pnlPedidoR;
	private JLabel lblCodigoPedido;

	public VentanaPedido() {
		super();
		initGUI();
	}

	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			{
				pnlBorde = new JPanel();
				getContentPane().add(pnlBorde, BorderLayout.CENTER);
				pnlBorde.setLayout(null);
				pnlBorde.setPreferredSize(new java.awt.Dimension(829, 672));
				pnlBorde.setBackground(new java.awt.Color(255, 255, 255));

				{
					lblCodigoPedido = new JLabel();
					pnlBorde.add(lblCodigoPedido);
					lblCodigoPedido.setBounds(99, 78, 139, 26);
					lblCodigoPedido.setText("Codigo de Pedido:");
				}
				{
					txtNroPedido = new JTextField();
					pnlBorde.add(txtNroPedido);
					txtNroPedido.setBounds(238, 81, 94, 22);
					txtNroPedido
							.setBackground(new java.awt.Color(255, 255, 255));
				}
				{
					lblFechaPedido = new JLabel();
					pnlBorde.add(lblFechaPedido);
					lblFechaPedido.setText("Fecha:");
					lblFechaPedido.setBounds(466, 75, 63, 21);
				}

				{
					lblTitulo = new JLabel();
					pnlBorde.add(lblTitulo);
					lblTitulo.setText("Pedido");
					lblTitulo.setBounds(279, 21, 100, 33);
					lblTitulo.setFont(new java.awt.Font("Bitstream Charter", 0,
							22));
				}
				{
					pnlClientepedido = new JPanel();
					pnlBorde.add(pnlClientepedido);
					pnlClientepedido.setBounds(99, 124, 567, 73);
					pnlClientepedido.setLayout(null);
					pnlClientepedido.setToolTipText("asfaf");
					pnlClientepedido.setBackground(new java.awt.Color(255, 255,
							255));
					pnlClientepedido.setBorder(new LineBorder(
							new java.awt.Color(0, 0, 0), 1, false));
					{
						lblIdCliente = new JLabel();
						pnlClientepedido.add(lblIdCliente);
						lblIdCliente.setText("ID Cliente:");
						lblIdCliente.setBounds(27, 19, 105, 15);
					}
					{
						txtIdclientePedido = new JTextField();
						pnlClientepedido.add(txtIdclientePedido);
						txtIdclientePedido.setBounds(119, 16, 108, 22);
						txtIdclientePedido.setActionCommand("IdClientePedido");
					}
					{
						lblNombreCliP = new JLabel();
						pnlClientepedido.add(lblNombreCliP);
						lblNombreCliP.setText("Nombre:");
						lblNombreCliP.setBounds(237, 19, 69, 15);
					}
					{
						txtNombreCliP = new JTextField();
						pnlClientepedido.add(txtNombreCliP);
						txtNombreCliP.setBounds(298, 16, 122, 22);
					}
					{
						lblDireccionPedido = new JLabel();
						pnlClientepedido.add(lblDireccionPedido);
						lblDireccionPedido.setText("Dirección:");
						lblDireccionPedido.setBounds(26, 47, 91, 15);
					}
					{
						txtDireccionPedido = new JTextField();
						pnlClientepedido.add(txtDireccionPedido);
						txtDireccionPedido.setBounds(117, 44, 395, 22);
					}
				}
				{
					pnlproductopedido = new JPanel();
					pnlBorde.add(pnlproductopedido);
					pnlproductopedido.setBounds(100, 214, 567, 193);
					pnlproductopedido.setBorder(new LineBorder(
							new java.awt.Color(0, 0, 0), 1, false));
					pnlproductopedido.setBackground(new java.awt.Color(255,
							255, 255));
					pnlproductopedido.setLayout(null);
					{
						ComboBoxModel cmbLineaPedidoModel = new DefaultComboBoxModel(
								new String[] {});
						cmbLineaPedido = new JComboBox();
						pnlproductopedido.add(cmbLineaPedido);
						cmbLineaPedido.setModel(cmbLineaPedidoModel);
						cmbLineaPedido.setBounds(77, 14, 186, 22);
						cmbLineaPedido.setBackground(new java.awt.Color(255,
								255, 255));
						cmbLineaPedido.setActionCommand("Combo linea pedido");
					}

					{
						lblLineaPedido = new JLabel();
						pnlproductopedido.add(lblLineaPedido);
						lblLineaPedido.setText("Linea:");
						lblLineaPedido.setBounds(22, 17, 50, 15);
					}

					{
						scpProductosp = new JScrollPane();
						pnlproductopedido.add(scpProductosp);
						scpProductosp.setBounds(29, 44, 525, 109);
						scpProductosp.setBackground(new java.awt.Color(255,
								255, 255));
						scpProductosp.setIgnoreRepaint(true);
						{
							DefaultTableModel tblProductoPModel = new DefaultTableModel(
									new String[][] {}, new String[] { "codigo",
											"Producto", "Presentacion",
											"Cantida Disponible" }) {
								@Override
								public boolean isCellEditable(int row,
										int column) {
									return false;
								}
							};

							tblProductoP = new JTable();
							scpProductosp.setViewportView(tblProductoP);
							tblProductoP.setModel(tblProductoPModel);
							tblProductoP
									.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
							tblProductoP.setGridColor(new java.awt.Color(77,
									77, 77));
							tblProductoP.setBackground(new java.awt.Color(255,
									255, 255));
							tblProductoP.getTableHeader().setBackground(
									new java.awt.Color(92, 165, 235));
							tblProductoP.getTableHeader().setForeground(
									new java.awt.Color(0, 0, 0));

						}
					}
					{
						bntAgregarP = new JButton();
						pnlproductopedido.add(bntAgregarP);
						bntAgregarP.setBounds(377, 159, 74, 21);
						bntAgregarP.setActionCommand("AgregarP");
					}
					{
						txtCantidadPedida = new JTextField();
						pnlproductopedido.add(txtCantidadPedida);
						txtCantidadPedida.setBounds(144, 159, 93, 22);
					}

				}
				{
					lblImagen = new JLabel();
					pnlBorde.add(lblImagen);
					lblImagen.setBounds(0, 34, 54, 616);
					lblImagen.setIcon(new ImageIcon(getClass().getClassLoader()
							.getResource("imagen/fondo7.jpg")));
				}
				{
					btnGuardar = new JButton();
					pnlBorde.add(btnGuardar);
					btnGuardar.setBounds(337, 626, 93, 31);
					btnGuardar.setIcon(new ImageIcon(getClass()
							.getClassLoader().getResource(
									"imagen/Boton_Guardar2.jpg")));
					btnGuardar.setRolloverIcon(new ImageIcon(getClass()
							.getClassLoader().getResource(
									"imagen/Boton_Guardar.jpg")));
					btnGuardar.setBorder(BorderFactory.createEmptyBorder(0, 0,
							0, 0));
					btnGuardar.setActionCommand("GuardarPedido");

				}
				btnAceptar = new JButton();
				pnlBorde.add(btnAceptar);
				btnAceptar.setBounds(337, 625, 93, 31);
				btnAceptar.setIcon(new ImageIcon(getClass().getClassLoader()
						.getResource("imagen/Boton_Aceptar2.jpg")));
				btnAceptar.setBorder(BorderFactory
						.createEmptyBorder(0, 0, 0, 0));
				btnAceptar.setRolloverIcon(new ImageIcon(getClass()
						.getClassLoader().getResource(
								"imagen/Boton_Aceptar.jpg")));
				btnAceptar.setActionCommand("Aceptar Pedido");
				{
					stchFecha = new JDateChooser();
					pnlBorde.add(stchFecha);
					{
						pnlPedidoR = new JPanel();
						pnlBorde.add(pnlPedidoR);
						pnlBorde.add(getJpnSegundoScrollPanel());
						pnlPedidoR.setBounds(100, 419, 565, 177);
						pnlPedidoR.setBorder(new LineBorder(new java.awt.Color(
								0, 0, 0), 1, false));
						pnlPedidoR.setBackground(new java.awt.Color(255, 255,
								255));
						pnlPedidoR.setLayout(null);
						{
							scpPedido = new JScrollPane();
							pnlPedidoR.add(scpPedido);
							scpPedido.setBounds(25, 13, 517, 141);
							{
								DefaultTableModel tblPedidoModel = new DefaultTableModel(
										new String[][] {}, new String[] {
												"Codigo", "Producto",
												"Cantidad Pedida" }) {
									@Override
									public boolean isCellEditable(int row,
											int column) {
										return false;
									}
								};
								tblPedido = new JTable();
								scpPedido.setViewportView(tblPedido);
								tblPedido.setModel(tblPedidoModel);
								tblPedido
										.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
								tblPedido.setBackground(new java.awt.Color(255,
										255, 255));
								tblPedido.getTableHeader().setBackground(
										new java.awt.Color(92, 165, 235));
							}
						}
					}
					stchFecha.setBounds(541, 75, 106, 22);
					stchFecha.getDate();
				}
			}
			pack();
			this.setSize(1249, 720);
		} catch (Exception e) {
			// add your error handling code here
			e.printStackTrace();
		}
	}

	public void agregarListener(ActionListener actionListener) {
		cmbLineaPedido.addActionListener(actionListener);
		bntAgregarP.addActionListener(actionListener);
		btnGuardar.addActionListener(actionListener);
		btnAceptar.addActionListener(actionListener);
		txtIdclientePedido.addActionListener(actionListener);
	}

	public String getTxtNroPedido() {
		return txtNroPedido.getText();
	}

	public void setTxtNroPedido(JTextField txtNroPedido) {
		this.txtNroPedido = txtNroPedido;

	}

	public void setNroPedido(String nro) {
		this.txtNroPedido.setText(nro);
		txtNroPedido.setEditable(false);
	}

	public void setTxtCantidadDisponible(JTextField txtCantidadDisponible) {

	}

	public void setTxtCantidaPedido(JTextField txtCantidaPedido) {
	}

	public JComboBox getCmbLineaPedido() {
		return cmbLineaPedido;
	}

	public void setCmbLineaPedido(JComboBox cmbLineaPedido) {
		this.cmbLineaPedido = cmbLineaPedido;
	}

	public String getTxtNombreCliP() {
		return txtNombreCliP.getText();
	}

	public void setTxtNombreCliP(JTextField txtNombreCliP) {
		this.txtNombreCliP = txtNombreCliP;

	}

	public String getTxtIdclientePedido() {
		return txtIdclientePedido.getText();
	}

	public void setTxtIdclientePedido(JTextField txtIdclientePedido) {
		this.txtIdclientePedido = txtIdclientePedido;
	}

	public String getTxtDireccionPedido() {
		return txtDireccionPedido.getText();
	}

	public void setTxtDireccionPedido(JTextField txtDireccionPedido) {
		this.txtDireccionPedido = txtDireccionPedido;

	}

	public void setTxtFechaPedido(JTextField txtFechaPedido) {
	}

	public void agregarLineacmbLineaPedido(String line) {
		DefaultComboBoxModel modelocombo = (DefaultComboBoxModel) cmbLineaPedido
				.getModel();
		modelocombo.addElement(line);

	}

	public void mostrarMensaje(String mensaje) {
		JOptionPane.showMessageDialog(this, mensaje, "Información",
				JOptionPane.INFORMATION_MESSAGE);
	}

	public JDateChooser getStchFecha() {
		return stchFecha;
	}

	public void setStchFecha(JDateChooser stchFecha) {
		this.stchFecha = stchFecha;
	}

	public void agregarKeyListener(KeyListener keylistener) {
		txtIdclientePedido.addKeyListener(keylistener);
	}

	public void setDireccionCliente(String texto) {
		this.txtDireccionPedido.setText(texto);
		txtDireccionPedido.setEditable(false);
	}

	public void setNombreCliente(String texto) {
		this.txtNombreCliP.setText(texto);
		txtNombreCliP.setEditable(false);
	}

	public void llenarCamposCliente(String nombre, String direccion) {

		setNombreCliente(nombre);
		setDireccionCliente(direccion);
	}

	// retorna la cantidad de filas en la tabla.
	public int cantidadfilasPedido() {
		return tblPedido.getRowCount();
	}

	public JTable getTblProductoP() {
		return tblProductoP;
	}

	public void setTblProductoP(JTable tblProductoP) {
		this.tblProductoP = tblProductoP;
	}

	public void mostrarMensajePedido(String mensaje) {
		JOptionPane.showMessageDialog(this, mensaje, "Información",
				JOptionPane.INFORMATION_MESSAGE);
	}

	public void setCmbLineaPedidoIndex(int index) {
		this.cmbLineaPedido.setSelectedIndex(index);
	}

	public void agregarFilaProductoPedido(Vector<String> datoProducto) {
		DefaultTableModel modelop = (DefaultTableModel) this.tblProductoP
				.getModel();

		modelop.addRow(datoProducto);

	}

	public void limpiarTablaProducto() {
		DefaultTableModel tblProductoPModel = new DefaultTableModel(
				new String[][] {}, new String[] { "codigo", "Producto",
						"Presentacion", "Cantida Disponible" });
		tblProductoP.setModel(tblProductoPModel);

	}

	public int numeroFilasSeleccionadasP() {
		return tblProductoP.getSelectedRowCount();
	}

	public String getTxtCantidadPedida() {
		return txtCantidadPedida.getText();
	}

	public void setTxtCantidadPedida(JTextField txtCantidadPedida) {
		this.txtCantidadPedida = txtCantidadPedida;
	}

	public void agregarFilaPedido(Vector<String> dato) {
		DefaultTableModel modelop = (DefaultTableModel) this.tblPedido
				.getModel();

		modelop.addRow(dato);

	}

	public int cantidadFilasProducto() {
		return tblPedido.getRowCount();
	}

	public JTable getTblPedido() {
		return tblPedido;
	}

	public void setTblPedido(JTable tblPedido) {
		this.tblPedido = tblPedido;
	}

	public int obtenerCodigoProduFilaSeleccionada() {
		int fila = tblProductoP.getSelectedRow();
		return fila;
	}

	public Vector<String> retornarItemPedido(int index) {
		DefaultTableModel modelo = (DefaultTableModel) tblPedido.getModel();
		Vector<String> datos = new Vector<String>(3, 1);
		String codigo = (String) modelo.getValueAt(index, 0);
		String producto = (String) modelo.getValueAt(index, 1);
		String cantidadPedida = (String) modelo.getValueAt(index, 2);
		datos.add(codigo);
		datos.add(producto);
		datos.add(cantidadPedida);
		return datos;
	}

	public Date retornarDatePedido() {
		Date fechaDate = stchFecha.getDate();
		return fechaDate;
	}

	public int mostrarMensajeSiNO(String mensaje) {
		int seleccion = JOptionPane.showOptionDialog(this, mensaje,
				"Seleccione una opción", JOptionPane.YES_NO_CANCEL_OPTION,
				JOptionPane.QUESTION_MESSAGE, null,
				new Object[] { "Si", "No" }, "Si");
		return seleccion;
	}

	private JScrollPane getJpnSegundoScrollPanel() {
		if (jpnSegundoScrollPanel == null) {
			jpnSegundoScrollPanel = new JScrollPane();
			jpnSegundoScrollPanel.setBounds(677, 124, 550, 418);
			jpnSegundoScrollPanel.setViewportView(getJTable1());
		}
		return jpnSegundoScrollPanel;
	}

	private JTable getJTable1() {
		if (jTable1 == null) {
			DefaultTableModel jTable1Model = new DefaultTableModel(
					new String[][] {}, new String[] { "Producto", "Deposito",
							"Estante/Paleta", "Cantidad" });
			jTable1 = new JTable();
			jTable1.setModel(jTable1Model);
		}
		return jTable1;
	}

	public void agregarFilaM(Vector<String> dato) {
		DefaultTableModel modelop = (DefaultTableModel) this.jTable1.getModel();
		modelop.addRow(dato);

	}

	public void desapacerBoton(int i) {
		if (i == 0) {
			btnGuardar.setVisible(false);
		} else if (i == 1) {
			btnAceptar.setVisible(false);
		} else if (i == 2) {
			btnGuardar.setVisible(true);
		}
	}
}
